/**
 * 字典属性常量
 * @author luolin
 */

const methods = [
  {
    label: "当启动任务时",
    value: "start"
  },
  {
    label: "当启动下一步任务时",
    value: "startNext"
  },
  {
    label: "当完成任务时",
    value: "audit"
  },
  {
    label: "当完成节点时",
    value: "complete"
  },
  {
    label: "当任务跳转时",
    value: "anyJump"
  },
  {
    label: "当任务被跳转时",
    value: "anyJumped"
  },
  {
    label: "当任务驳回时",
    value: "reject"
  },
  {
    label: "当任务被驳回时",
    value: "rejected"
  }
];

export const DIC_PROP = {
  YES_OR_NO: [
    {
      label: "否",
      value: "0",
      i18n: "no"
    },
    {
      label: "是",
      value: "1",
      i18n: "yes"
    }
  ],
  YES_OR_NO_BOOL: [
    {
      label: "否",
      value: false,
      i18n: "no"
    },
    {
      label: "是",
      value: true,
      i18n: "yes"
    }
  ],
  TEMP_STATUS: [
    {
      label: "暂存",
      value: "-1",
      i18n: "temp"
    },
    {
      label: "作废",
      value: "0",
      i18n: "invalid"
    },
    {
      label: "发布",
      value: "1",
      i18n: "pub"
    }
  ],
  ORDER_STATUS: [
    {
      label: "撤回",
      value: "-3"
    },
    {
      label: "暂存",
      value: "-2"
    },
    {
      label: "运行中",
      value: "-1"
    },
    {
      label: "完成",
      value: "0"
    },
    {
      label: "提前结束",
      value: "2"
    },
    {
      label: "作废",
      value: "3"
    }
  ],
  HANDOVER_TYPE: [
    {
      label: "任务交接",
      value: "-1"
    }
  ],
  HANDOVER_REASON: [
    {
      label: "日常交接",
      value: "-1"
    },
    {
      label: "晋升",
      value: "0"
    },
    {
      label: "转岗",
      value: "1"
    },
    {
      label: "离职",
      value: "2"
    },
    {
      label: "平调",
      value: "3"
    }
  ],
  HANDOVER_STATUS: [
    {
      label: "撤回",
      value: "-3"
    },
    {
      label: "未交接",
      value: "-2"
    },
    {
      label: "交接中",
      value: "-1"
    },
    {
      label: "已交接",
      value: "0"
    },
    {
      label: "作废",
      value: "1"
    },
    {
      label: "终止",
      value: "2"
    }
  ],
  NODE_TYPE: [
    {
      label: "发起节点",
      value: "-1"
    },
    {
      label: "串行节点",
      value: "0"
    },
    {
      label: "并行节点",
      value: "1"
    },
    {
      label: "结束节点",
      value: "2"
    }
  ],
  NODE_TYPE_DESC: [
    {
      label: "发起节点",
      value: "Start"
    },
    {
      label: "串行节点",
      value: "Serial"
    },
    {
      label: "并行节点",
      value: "Parallel"
    },
    {
      label: "结束节点",
      value: "End"
    },
    {
      label: "任务节点",
      value: "Job"
    }
  ],
  WHOSE_TYPE: [
    {
      label: "发起人所属部门",
      value: "0"
    },
    {
      label: "指定人员所属部门",
      value: "1"
    }
  ],
  DYNAMIC_DEPT_TYPE: [
    {
      label: "发起人所属部门",
      value: "0"
    },
    {
      label: "指定部门",
      value: "1"
    }
  ],
  JOB_TYPE: [
    {
      label: "个人",
      value: "0"
    },
    {
      label: "角色",
      value: "1"
    },
    {
      label: "发起人",
      value: "3"
    },
    {
      label: "单级部门主管",
      value: "4"
    },
    {
      label: "多级部门主管",
      value: "5"
    },
    {
      label: "指定部门主管",
      value: "6"
    },
    {
      label: "动态办理人",
      value: "7"
    },
    {
      label: "指定岗位",
      value: "8"
    },
    {
      label: "指定部门岗位",
      value: "9"
    },
    {
      label: "动态函数计算",
      value: "10"
    }
  ],
  FLOW_METHOD_TYPE: [
    {
      label: "发起人本人",
      value: "0"
    },
    {
      label: "单级部门主管",
      value: "1"
    },
    {
      label: "多级部门主管",
      value: "2"
    },
    {
      label: "指定部门主管",
      value: "3"
    }
  ],
  JOB_USER_TYPE: [
    {
      label: "个人",
      value: "0"
    },
    {
      label: "角色",
      value: "1"
    }
  ],
  APPROVE_METHOD: [
    {
      label: "会签(需所有审批人同意)",
      value: "1"
    },
    {
      label: "或签(一名审批人同意即可)",
      value: "2"
    },
    {
      label: "依次审批(按顺序依次审批)",
      value: "3"
    }
  ],
  MSG_TYPE: [
    {
      label: "个人消息",
      value: "0"
    },
    {
      label: "群消息",
      value: "1"
    }
  ],
  NODE_STATUS: [
    {
      label: "未开始",
      value: "-1"
    },
    {
      label: "办理中",
      value: "0"
    },
    {
      label: "完成",
      value: "1"
    },
    {
      label: "驳回中",
      value: "2"
    },
    {
      label: "跳过",
      value: "3"
    },
    {
      label: "被驳回",
      value: "9"
    }
  ],
  REJECT_STATUS: [
    {
      label: "驳回中",
      value: "0"
    },
    {
      label: "结束",
      value: "1"
    }
  ],
  NODE_DEGREE: [
    {
      label: "出度",
      value: "0"
    },
    {
      label: "入度",
      value: "1"
    }
  ],
  REJECT_TYPE: [
    {
      label: "依次返回",
      value: "0"
    },
    {
      label: "直接返回",
      value: "1"
    }
  ],
  OPERATOR: [
    {
      label: "等于",
      value: "0"
    },
    {
      label: "不等于",
      value: "1"
    },
    {
      label: "大于",
      value: "2"
    },
    {
      label: "大于等于",
      value: "3"
    },
    {
      label: "小于",
      value: "4"
    },
    {
      label: "小于等于",
      value: "5"
    },
    {
      label: "包含",
      value: "6"
    },
    {
      label: "不包含",
      value: "7"
    }
  ],
  VAL_TYPE: [
    {
      label: "简单模式",
      value: "0"
    },
    {
      label: "SpEL模式",
      value: "1"
    },
    {
      label: "专业模式",
      value: "2"
    }
  ],
  DYNAMIC_TYPE: [
    {
      label: "人员/角色",
      value: "0"
    },
    {
      label: "指定办理人KEY",
      value: "1"
    },
    {
      label: "动态加减签",
      value: "2"
    }
  ],
  DYNAMIC_USER_TYPE: [
    {
      label: "人员/角色",
      value: "0"
    }
  ],
  DYNAMIC_KEY_TYPE: [
    {
      label: "指定办理人KEY",
      value: "1"
    },
    {
      label: "动态加减签",
      value: "2"
    }
  ],
  NOTICE_STATUS: [
    {
      label: "发起",
      value: "-1"
    },
    {
      label: "办理中",
      value: "0"
    },
    {
      label: "完成",
      value: "1"
    }
  ],
  TODO_JOB_STATUS: [
    {
      label: "未开始",
      value: "-1"
    },
    {
      label: "办理中",
      value: "0"
    },
    {
      label: "驳回中",
      value: "2"
    },
    {
      label: "被驳回",
      value: "9"
    }
  ],
  FLOW_STATUS: [
    {
      label: "撤回",
      value: "-2"
    },
    {
      label: "发起",
      value: "-1"
    },
    {
      label: "运行中",
      value: "0"
    },
    {
      label: "完结",
      value: "1"
    },
    {
      label: "提前结束",
      value: "2"
    },
    {
      label: "作废",
      value: "3"
    }
  ],
  NODE_METHODS: methods,
  FLOW_METHODS: [
    {
      label: "当流程发起时",
      value: "initiate"
    },
    {
      label: "当流程完成时",
      value: "finish"
    },
    {
      label: "当流程被撤回时",
      value: "recall"
    },
    {
      label: "当流程被提前结束时",
      value: "stop"
    },
    {
      label: "当流程被作废时",
      value: "cancel"
    },
    ...methods
  ],
  CLAZZ_TYPE: [
    {
      label: "节点事件",
      value: "0"
    },
    {
      label: "全局事件",
      value: "1"
    }
  ],
  COLUMN_TYPE: [
    {
      label: "varchar",
      value: "varchar"
    },
    {
      label: "bigint",
      value: "bigint"
    },
    {
      label: "int",
      value: "int"
    },
    {
      label: "double",
      value: "double"
    },
    {
      label: "timestamp",
      value: "timestamp"
    },
    {
      label: "date",
      value: "date"
    },
    {
      label: "float",
      value: "float"
    },
    {
      label: "bit",
      value: "bit"
    }
  ],
  LOCK_FLAG: [
    {
      label: "有效",
      value: "0"
    },
    {
      label: "锁定",
      value: "9"
    }
  ],
  FORM_PERM_TYPE: [
    {
      label: "显示/隐藏",
      value: "-1"
    },
    {
      label: "只读/编辑",
      value: "0"
    }
  ],
  PARAM_RULE_TYPE: [
    {
      label: "人员规则",
      value: "0"
    },
    {
      label: "条件规则",
      value: "1"
    },
    {
      label: "父子流程",
      value: "2"
    },
    {
      label: "监听事件",
      value: "3"
    }
  ],
  OR_OR_AND: [
    {
      label: "或",
      value: "0"
    },
    {
      label: "且",
      value: "1"
    }
  ],
  PARAM_FROM: [
    {
      label: "请求头",
      value: "0"
    },
    {
      label: "传参",
      value: "1"
    },
    {
      label: "回参",
      value: "2"
    }
  ],
  PARAM_VAL_TYPE: [
    {
      label: "表单字段",
      value: "0"
    },
    {
      label: "SpEL表达式",
      value: "1"
    },
    {
      label: "固定值",
      value: "2"
    }
  ]
};

export function filterDictLabel(dict, value) {
  const dictItems = dict.filter(item => {
    return item.value === value;
  });
  if (dictItems && dictItems.length > 0) {
    return dictItems[0].label;
  }
}
